Computerized control apparatus for controlling many manufacturing processes and techniques is now in widespread use. Typically, a control computer system interfaces with a manufacturing process by means of data acquisition and signal generation devices. Data acquisition devices sample selected variables in the manufacturing process at predetermined intervals and convert the measured variables into digital codes suitable for use by the computer. Alternatively signal generation devices are used to translate the digital codes produced by the computer into analog signals suitable for controlling the manufacturing process.
In some systems, the measured variables are transferrred to the computer system's main memory. The processor then performs computations on the data in main memory and provides output signals which can be used to control the ongoing process. In other systems, incoming data from the sampling circuits is transferred from main memory to a secondary storage unit and later retrieved for analysis. This latter method is typically used when data rates exceed the real-time processing capabilities of the system.
In the latter type of data acquisition system, data is sampled at a steady rate and each sample is temporarily stored in the data acquisition device before being transferred to a plurality of temporary storage or buffer areas located in the computer's main memory. Generally, in order to reduce the processing requirements on the main computer the transfer of data from the data acquisition device to the storage area is performed by a direct memory access (DMA) unit. This well-known unit contains the logic circuitry to generate the necessary address information and commands to transfer information from the data acquisition device to the storage area without direct intervention by the computer system. In order to initiate a DMA transfer, the computer sends the DMA unit the starting address of a buffer memory at which to begin storing the transferred information and the number of information words to be transferred (called the word count). The computer then enables the DMA unit which independently performs the transfers. The DMA unit then monitors the number of words transferred and when the specified number have been transferred, the DMA unit stops transferring data and notifies the computer system by a standard interrupt procedure. The computer then provides the DMA unit with the starting address of a new buffer area and the new word count and restart the unit. After the DMA unit has been enabled, the computer may usually perform other calculations.
When the buffer memory areas in the computer's memory become filled, the data is transferred by another DMA unit to a large secondary storage located on the computer's peripheral bus. In order to provide for continous transfer of information between the data acquisition device and the secondary storage a technique known as "double-buffering" is used. In this technique at least two separate buffer memory areas are used for transfer of data. Since the buffer areas are separate, data can be transferred from a data acquisition device to a first buffer area under control of one DMA unit while data is simultaneously being transferred from the second buffer area to the secondary storage unit under control of the other DMA unit. Since data transfer from a buffer memory to the secondary storage is generally faster than data transfer from the data acquisition device, the second buffer generally becomes empty before the first buffer is filled so that when the first buffer does become filled, new incoming information can be transferred to the empty second buffer while the first buffer is being emptied.
However, in a control system in which data is being sampled at a rapid, steady rate, it is possible to "lose" data samples if the time between data samples is less than the time required to restart a DMA transfer operation. Data loss occurs because the DMA process stops after an interrupt has been generated and a typical data acquisition unit contains very limited storage capabilities, therefore, any data which is sampled before the DMA process is restarted is not transferred to main memory. The time to restart the DMA proces is generally the sum of the maximum time the computer requires to recognize and service an interrupt and the time required to execute the routine which loads the DMA unit with the address and word count information and enables the transfer operation.
A corresponding problem occurs when data is being transferred from the buffer storage area to a signal generation device where the translated data is being used to control an ongoing process. If the transfer rate exceeds the time required to restart the DMA process when one buffer memory has been emptied, an interruption in data flow (generally called a data "underrun" or "delay") will occur. In some systems a small data delay is not serious, but in other systems it can produce catastophic results.
In order to eliminate data losses and delays, several prior art schemes have been developed. One conventional arrangement is to provide a "dual-port" memory in the data acquisition or translation device. With a dual-port memory, data can be stored and retrieved simultaneously via the two separate ports. Thus data can be transferred from the buffer area to the memory through one port and simultaneously removed from the memory from another port before the memory has become filled.
A similar scheme uses a first in, first out (FIFO) buffer memory located in the data acquisition or translation units. In this arrangement, data can also be stored and withdrawn simultaneously from the FIFO memory.
Other prior art systems have used two independent DMA controllers to control tranfor the final duration t.sub.S. The co-operating `0` and `1` data pulses 92 and 93 are identical with those of FIG. 3, being balanced bipolar pulses ranging from +V.sub.D to -V.sub.D, and of total duration 2t.sub.S. The leading edges of the strobe pulses are synchronized with those of the data pulses so that a data pulse that is synchronized with the first third of a strobe pulse applied to electrode strip `p` is also synchronized with the middle third of the strobe pulse applied to electrode strip (p-1), and with the final third of the strobe pulse applied to electrode strip (p-2). From a study of these waveforms it is seen that the first third of a strobe pulse 91a will set a pixel into ` 0` state whether it is synchronized with a `0` data pulses or a `1` data pulse: that in the second third the voltages are insufficient for switching; and that in the final third is synchronized wiht a data `0` pulse waveform, but will be restored to the `1` state if it is synchronized with a data `1` waveform.
A line is then blanked for two line address times before being written instead of for only one line address time provided by the waveforms of FIG. 7. However, whereas with the waveforms of FIG. 7 data entry that induces switching of a pixel in a period t.sub.S can be preceded by exposure of that pixel in the immediately preceding period of duration t.sub.S by an opposite polarity stimulus of magnitude .vertline.V.sub.S +V.sub.D .vertline., with the waveforms of FIG. 9 the maximum reverse polarity stimulus that can occur in this period t.sub.S immediately preceding the data entry switching is a reverse polarity stimulus of magnitude .vertline.V.sub.D .vertline..
Although the present invention has thus been described with particular reference to one or more presently preferred embodiments, doubtless other embodiments will be apparent to the skilled artisan without departing from the spirit and intent of the present invention. Accordingly, the invention should be deemed to encompass all possible embodiments falling within the scope of the appended claims, as well as any equivilent thereof.